package com.sojoys.artifact.factory.remote;

/**
 * @author : DengYing
 * @CreateDate : 2017年8月14日 下午12:21:45
 * @Description ：远程接口代理
 */
public abstract class IRemoteProxy {
	
//	public <T> T create(final Class<?> interfaceClass) {
//		return create(interfaceClass, null);
//	}

	/**
	 * 创建一个接口
	 * 
	 * @param interfaceClass
	 * @param destination
	 */
	public abstract <T> T create(final Class<?> interfaceClass, final String destination, final boolean topic);

//	/**
//	 * 发送并接收
//	 * 
//	 * @param interfaceClass
//	 * @return
//	 */
//	public <T> T createReceive(final Class<?> interfaceClass) {
//		return createReceive(interfaceClass, null);
//	}

	/**
	 * 发送并接收
	 * 
	 * @param interfaceClass
	 * @return
	 */
	public abstract <T> T createReceive(final Class<?> interfaceClass, final String destination);
}
